/**
 * 校验工具
 */
export default {
    /**
     * mobile 传入手机号/座机号
     * @param {String} mobile 
     * @returns {boolean}
     */
    checkPhone(mobile) {
        var tel = /^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/;
        var phone = /^(?:\+?86)?1(?:3\d{3}|5[^4\D]\d{2}|8\d{3}|7(?:[0-35-9]\d{2}|4(?:0\d|1[0-2]|9\d))|9[0-35-9]\d{2}|6[2567]\d{2}|4(?:(?:10|4[01])\d{3}|[68]\d{4}|[579]\d{2}))\d{6}$/;
        // 校验手机号
        if (phone.test(mobile)) {
            console.log(mobile);
            return true;
        }
        // 校验座机号
        if (tel.test(mobile)) {
            console.log(mobile);
            return true;
        }
        return false
    },

    /**
     * 
     * @param {
     *   obj {
     *      str: String | 要校验的字符串
     *      minNum: number | 最小长度，默认为0
     *      maxNum: number | 最长长度
     *      removeSpace: boolean | 是否去除首尾空格，默认去除
     *   }
     * }
     * @returns {boolean} 
     */
    checkStringLength(obj) {
        var {
            str,
            minNum = 0,
            maxNum,
            removeSpace = true
        } = obj
        if (removeSpace) {
            if (str.trim().length >= minNum) {
                if (maxNum || maxNum === 0) {
                    return str.trim().length <= maxNum
                }
                return true
            }
            return false
        } else {
            if (str.length >= minNum) {
                if (maxNum || maxNum === 0) {
                    return str.length <= maxNum
                }
                return true
            }
            return false
        }
    },

    /**
     * 验证字符串是否包含小写字母
     * @param {string} str
     * @returns {Boolean}
     */
    validLowerCase(str) {
        const reg = /^[a-z]+$/
        return reg.test(str)
    },

    /**
     * 验证字符串是否包含大写字母
     * @param {string} str
     * @returns {Boolean}
     */
    validUpperCase(str) {
        const reg = /^[A-Z]+$/
        return reg.test(str)
    },

    /**
     * 验证字符串是否包含字符
     * @param {string} str
     * @returns {Boolean}
     */
    validAlphabets(str) {
        const reg = /^[A-Za-z]+$/
        return reg.test(str)
    },

    /**
     * 验证邮箱
     * @param {string} email
     * @returns {Boolean}
     */
    validEmail(email) {
        const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
        return reg.test(email)
    },

    /**
     * 验证str是否是字符串
     * @param {string} str
     * @returns {Boolean}
     */
    isString(str) {
        if (typeof str === 'string' || str instanceof String) {
        return true
        }
        return false
    }
}